package com.java.module.user.domain.vo;

import java.math.BigDecimal;
import java.util.Date;

import javax.validation.constraints.Pattern;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.java.common.lang.annotation.FileData;

/**
 * 用户管理对象 user
 *
 * @author zt
 * @date 2021-04-15
 */
@FileData
public class UserVO {

    /**
     * 用户ID
     */
    private Long uid;

    /**
     * 平台类型：1安卓 2苹果 3电脑 4公众号 5小程序
     */
    private Integer platform;

    /**
     * 用户账号
     */
    @Pattern(regexp = "^[1][3,4,5,6,7,8,9][0-9]{9}$", message = "手机号格式有误")
    private String username;

    /**
     * 用户昵称
     */
    private String nickname;

    /**
     * 真实姓名
     */
    private String realname;

    /**
     * 用户类型0注册用户 1临时用户
     */
    private Integer userType;

    /**
     * 用户邮箱
     */
    private String email;

    /**
     * 用户性别（0男 1女 2未知）
     */
    private String sex;

    /**
     * 头像地址
     */
    @FileData
    private String avatar;

    /**
     * 余额
     */
    private BigDecimal balance;

    /**
     * 账号审核状态（0待审核 1审核通过 2审核不通过）
     */
    private String checkStatus;

    /**
     * 删除标志（0默认 1删除）
     */
    private Integer delFlag;

    /**
     * 最后登录IP
     */
    private String loginIp;

    /**
     * 最后登录时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date loginDate;

    /**
     * 出生年月
     */
    private Date birthday;

    /**
     * 消息推送接收状态：0接收 1不接收
     */
    private Integer receivePushStatus;

    /**
     * 等级
     */
    private Integer level;

    /**
     * 积分
     */
    private BigDecimal integral;

    /**
     * usdt
     */
    private BigDecimal usdt;

    /**
     * yot
     */
    private BigDecimal yot;

    /**
     * yod
     */
    private BigDecimal yod;

    /**
     * bgs
     */
    private BigDecimal bgs;

    private String invitationCode;

    public String getInvitationCode() {
        return invitationCode;
    }

    public void setInvitationCode(String invitationCode) {
        this.invitationCode = invitationCode;
    }

    public BigDecimal getIntegral() {
        return integral;
    }

    public void setIntegral(BigDecimal integral) {
        this.integral = integral;
    }

    public BigDecimal getUsdt() {
        return usdt;
    }

    public void setUsdt(BigDecimal usdt) {
        this.usdt = usdt;
    }

    public BigDecimal getYot() {
        return yot;
    }

    public void setYot(BigDecimal yot) {
        this.yot = yot;
    }

    public BigDecimal getYod() {
        return yod;
    }

    public void setYod(BigDecimal yod) {
        this.yod = yod;
    }

    public BigDecimal getBgs() {
        return bgs;
    }

    public void setBgs(BigDecimal bgs) {
        this.bgs = bgs;
    }

    public Integer getLevel() {
        return level;
    }

    public void setLevel(Integer level) {
        this.level = level;
    }

    public Long getUid() {
        return uid;
    }

    public void setUid(Long uid) {
        this.uid = uid;
    }

    public Integer getPlatform() {
        return platform;
    }

    public void setPlatform(Integer platform) {
        this.platform = platform;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getNickname() {
        return nickname;
    }

    public void setNickname(String nickname) {
        this.nickname = nickname;
    }

    public String getRealname() {
        return realname;
    }

    public void setRealname(String realname) {
        this.realname = realname;
    }

    public Integer getUserType() {
        return userType;
    }

    public void setUserType(Integer userType) {
        this.userType = userType;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getAvatar() {
        return avatar;
    }

    public void setAvatar(String avatar) {
        this.avatar = avatar;
    }

    public BigDecimal getBalance() {
        return balance;
    }

    public void setBalance(BigDecimal balance) {
        this.balance = balance;
    }

    public String getCheckStatus() {
        return checkStatus;
    }

    public void setCheckStatus(String checkStatus) {
        this.checkStatus = checkStatus;
    }

    public Integer getDelFlag() {
        return delFlag;
    }

    public void setDelFlag(Integer delFlag) {
        this.delFlag = delFlag;
    }

    public String getLoginIp() {
        return loginIp;
    }

    public void setLoginIp(String loginIp) {
        this.loginIp = loginIp;
    }

    public Date getLoginDate() {
        return loginDate;
    }

    public void setLoginDate(Date loginDate) {
        this.loginDate = loginDate;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    public Integer getReceivePushStatus() {
        return receivePushStatus;
    }

    public void setReceivePushStatus(Integer receivePushStatus) {
        this.receivePushStatus = receivePushStatus;
    }

    @Override
    public String toString() {
        return "UserVO{" + "uid=" + uid + ", platform=" + platform + ", username='" + username + '\'' + ", nickname='"
                + nickname + '\'' + ", realname='" + realname + '\'' + ", userType=" + userType + ", email='" + email
                + '\'' + ", sex='" + sex + '\'' + ", avatar='" + avatar + '\'' + ", balance=" + balance
                + ", checkStatus='" + checkStatus + '\'' + ", delFlag=" + delFlag + ", loginIp='" + loginIp + '\''
                + ", loginDate=" + loginDate + ", birthday=" + birthday + ", receivePushStatus=" + receivePushStatus
                + '}';
    }
}
